A method of accurately computing amplitude and phase noise of oscillators and generating a general purpose noise model of oscillators, mixers, and amplifiers in frequency domain analysis of analog electronic circuits and using same

ABSTRACT

A method of accurately computing amplitude and phase noise of oscillators and generating a general purpose noise model of oscillators, mixers, and amplifiers in frequency domain analysis of analog electronic circuits and using same. A method for computing amplitude jitter, frequency jitter, sideband noise, and plain phase noise for oscillators, mixers, and amplifiers and modeling these sub-circuits accurately within a frequency domain analysis of an analog electronic circuit.

BACKGROUND

In conventional simulators, it is possible to model the noise characteristics of oscillators, mixers, and amplifiers either in their complex amplitude perturbations or in their frequency perturbations. Typically users choose one or the other according to their application as the model will be inaccurate either close to the carrier or at an offset. Thus they must choose between two models, neither of which accurately represents the cross correlation between amplitude perturbations and frequency perturbations in noise analysis. As more intellectual property is developed for reuse, the deployers of an oscillator, mixer, or amplifier may not have a sophisticated knowledge of these issues nor is it desirable for intellectual property developers to have to anticipate the application or maintain a plurality of noise models.

Circuit designers are usually interested in viewing the frequency spectrum of noise or the voltage noise spectrum one can view in a spectrum analyzer. Though voltage noise spectrum does not give a valuable quantitative information on phase noise at the vicinity of the carrier frequency, it provides a qualitative view of the oscillator spectral purity. Besides, the spectrum analyzer was the only available instrument to access oscillator noise behavior some years ago. With the new noise measurement instruments one can now directly access the carrier referred amplitude and phase noise without having to extrapolate from a spectrum analyzer plot.

Even though computation of noise spectrum seems simple, this is not the case. The reason for that results from the random nature of noise which does not offer a simple way for computing the actual waveforms, instead we can only access their statistical averages (spectral density). And especially because the statistical distribution of 1/f noise sources (which are the main contributors of noise) is still an unresolved problem, we may not recompose the voltage noise spectrum just from the knowledge of the statistical averages of the carrier referred AM and PM noise δ{circumflex over (v)}_(k)(t) and δΩ(t).

There are two types of merit factors for noise, which are on one hand the carrier referred AM and PM noise (δ{circumflex over (v)}_(k)(t), δΩ(t)) and on the other hand the voltage noise spectrum. The two types of merit factors have in practice strictly different applications.

The carrier referred AM and PM noise is useful for frequency synthesizer (VCO, Xtall, PLL, Divider) analysis. The specificity of a frequency synthesizer circuit is that it is ought to deliver only a single frequency tone in a bandwidth [−Bw/2,Bw/2] around any carrier harmonic ω_(k). The AM and PM noise will therefore quantify the purity of this expected single tone stimulus.

The voltage noise spectrum is useful for the analysis of transceiver blocs (LNA, Mixer, Converter). The specificity of transceiver blocs is that it is ought to process a signal that is not a single tone, but which occupies a certain bandwidth [−Bw/2, Bw/2]. The voltage noise spectrum is therefore the figure of merit that characterizes the noise superimposed onto the utile signal all over the signal bandwidth, when traversing the circuit (SNR). While the signal delivered by a frequency synthesizer is usually a large amplitude signal, the signal processed by the transceiver bloc is of relatively small amplitude (or equivalently the transceiver is ought to behave linearly enough with respect to the utile signal). Note that in the case of a transceiver bloc, it is common that the transmitted bandwidth is sufficiently far from the LO carrier.

Equivalent Noise Source of a Free Running Oscillator

Assume an oscillator delivers a noisy signal around a fundamental frequency Ω₀

u(t) = ℜe([Û₀ + δ û(t)]^(j∫₀^(t)[Ω₀ + δ Ω(τ)] τ))

This is characterized by 4 variables which are:

Û₀: nominal complex amplitude (noiseless phasor)

Ω₀: nominal frequency (noiseless frequency)

δû(t): complex amplitude noise component (amplitude jitter)

δΩ(t): frequency noise component (frequency jitter)

It is of importance to clearly isolate the two noise components amplitude jitter δû(t) and frequency jitter δΩ(t) of the oscillator source. These two components are naturally correlated as they share the same origin. It is therefore necessary to measure both their powers and correlation product: <|δû(t)|²>, <|δΩ(t)|²>, <δû(t)δΩ*(t)>.

These three terms can be obtained from the Envelope noise simulation of the oscillator circuit. Note that if the oscillator noise is characterized directly in the form of voltage noise spectrum it is not possible to de-embed the terms δû(t) and δΩ(t). This is a problem for conventional simulators which do not acquire directly amplitude and frequency jitters. The same kind of problem occurs when the phase noise is acquired from measurement equipments. The noise measurement equipment acquires directly the AM and PM terms and also it is not possible to de-embed δû(t) and δΩ(t) contributions. In these situations there is a temptation to ignore one of the two terms, which makes the simulation inaccurate either at frequency offsets close or far from the carrier.

Thus it can be appreciated that what is needed is a way to model an oscillator, mixer, or amplifier in such a way so as to have the model reusable as a component within a system at a broad spectrum of application by analyzing noise characteristics due to frequency perturbations and complex amplitude perturbations and the cross correlation between amplitude and frequency perturbations.

SUMMARY OF THE INVENTION

The present invention computes, stores, and retrieves the noise characteristics of an oscillator for simulation of a larger system using a method of modeling that is accurate over a broader range of operation.

BRIEF DESCRIPTION OF FIGURES

FIG. 1 is a graphical illustration of amplitude and phase perturbation of noiseless carrier.

FIG. 2 is a formula and definition of key noise modeling variables.

FIG. 3 is a definition of auxiliary vectors.

FIG. 4 is a description and definition of a noise vector.

FIG. 5A is an expression of the contribution of cross correlation.

FIG. 5B is an expression of the further contribution of cross correlation.

FIG. 5C is an expression of the contribution of frequency correlation.

FIG. 5D is an expression of the contribution of amplitude correlation.

DETAILED DISCLOSURE

Noise Source Definition Types

The noise source(s) associated to one or a set of voltage sources (or equivalently current sources) is (are) defined by a correlation bloc. The correlation bloc has no network connections; it refers to the associated voltage (or current) sources for the connectivity and large signal levels.

Format: Amplitude and Frequency Jitter

full correlation matrix

$\left\lbrack {{\delta \; {{\hat{E}}_{1,k}\left( \overset{\_}{\omega} \right)}},{\delta \; {{\hat{E}}_{1,{- k}}\left( \overset{\_}{\omega} \right)}},\ldots \mspace{11mu},{\delta {{\hat{E}}_{M,k}\left( \overset{\_}{\omega} \right)}},{\delta {{\hat{E}}_{M,{- k}}\left( \overset{\_}{\omega} \right)}},{\delta \; {\Omega_{0}\left( \overset{\_}{\omega} \right)}}} \right\rbrack^{t} \times \left\lbrack {{\delta \; {{\hat{E}}_{1,k}\left( \overset{\_}{\omega} \right)}},{\delta \; {{\hat{E}}_{1,{- k}}\left( \overset{\_}{\omega} \right)}},\ldots \mspace{11mu},{\delta {{\hat{E}}_{M,k}\left( \overset{\_}{\omega} \right)}},{\delta {{\hat{E}}_{M,{- k}}\left( \overset{\_}{\omega} \right)}},{\delta \; {\Omega_{0}\left( \overset{\_}{\omega} \right)}}} \right\rbrack$

is given as a function of noise offset frequency ω

An embodiment of the present invention associates a schematic symbol with a sub-circuit which may be an oscillator, mixer, or amplifier. The embodiment further comprises a simulator graphical user interface and an output browser with controls for running the model and downloading results. It will be appreciated by those skilled in the art that the essence of the present invention is computing correlation coefficients in a simulator for reuse as a model of the sub-circuit in a larger system.

Schematic Capture: NOISECOR Symbol

In an embodiment the oscillator noise macromodel is described with a NOISECOR symbol. The NOISECOR is a symbol without any pin, it behaves very much like a mutual inductance bloc. The NOISECOR bloc contains two fields:

one field for the list of the RF sources for which it defines the noise power and correlations. In an embodiment each source is a single tone stimulus and the name of the sources in the list given in the correct order. The RF source will provide information for the carrier tone frequency and amplitude. The other field is the name of file containing the noise source power/correlation information.

Sideband and Frequency Jitter

The full correlation matrix

$\left\lbrack {{\delta \; {{\hat{E}}_{1,k}\left( \overset{\_}{\omega} \right)}},{\delta \; {{\hat{E}}_{1,{- k}}\left( \overset{\_}{\omega} \right)}},\ldots \mspace{11mu},{\delta {{\hat{E}}_{M,k}\left( \overset{\_}{\omega} \right)}},{\delta {{\hat{E}}_{M,{- k}}\left( \overset{\_}{\omega} \right)}},{\delta \; {\Omega_{0}\left( \overset{\_}{\omega} \right)}}} \right\rbrack^{t} \times \left\lbrack {{\delta \; {{{\hat{E}}^{*}}_{1,k}\left( \overset{\_}{\omega} \right)}},{\delta \; {{{\hat{E}}^{*}}_{1,{- k}}\left( \overset{\_}{\omega} \right)}},\ldots \mspace{11mu},{\delta {{{\hat{E}}^{*}}_{M,k}\left( \overset{\_}{\omega} \right)}},{\delta {{{\hat{E}}^{*}}_{M,{- k}}\left( \overset{\_}{\omega} \right)}},{\delta \; {\Omega_{0}^{*}\left( \overset{\_}{\omega} \right)}}} \right\rbrack$

is given as a function of noise offset frequency ω

Simulator GUI

The Nonlinear noise analysis (amplifier, mixer, oscillator) accepts a plurality of probes in the noise output list to provide for example the phase noise of a VCO+divider at both Vco and divider outputs, and also it is necessary to macromodel a bloc having multiple outputs (e.g. quadrature Vco output). To make the simulation cost effective, it is necessary that each output probe be attached with a single tone frequency. In an embodiment the GUI provides an option for output probe/tone frequency selection.

Since the cost for noise correlation generation is important, an embodiment of the invention has a button to trigger NOISECOR data generation or not.

Method: Generating the Model—Computing Noise Correlation Data

The present invention is a method for calculating noise correlation information for a sub-circuit.

Given Q≧1 output probes, each probe P_(k) being specified at a harmonic index (m_(k),n_(k),p_(k)), the method comprises calculating the following correlation products

a/—amplitude correlation products

<δ{circumflex over (V)}_(q,k) _(q) δ{circumflex over (V)}_(o,k) _(o) *>, <δ{circumflex over (V)}_(q,k) _(q) δ{circumflex over (V)}_(o,-k) _(o) *>, <δ{circumflex over (V)}_(q,-k) _(q) δ{circumflex over (V)}_(o,k) _(o) *>, <δ{circumflex over (V)}_(q,-k) _(q) δ{circumflex over (V)}_(o,-k) _(o) *>, q,o=1, . . . , Q,  (1)

b/—frequency/amplitude correlation products

<δΩ₀δΩ₀*>, <δ{circumflex over (V)}_(q,k) _(q) δΩ₀*>, <δ{circumflex over (V)}_(q,-k) _(q) δΩ₀*>, q=1, . . . ,Q.  (2)

wherein, computing the frequency/amplitude correlation products (2) occurs on one of the two situations below: analysis of a free running oscillator, and analysis of non autonomous circuit (amplifier, mixer, divider) driven by an oscillator noise defined with a full LO noise information (amplitude and frequency jitters), wherein calculating a correlation product <X_(i).X_(j)*> is based on the adjoint network technique as follows. Each element X_(i) is expressed via its extraction vector

$X_{i} = {p_{i}^{t}\overset{1}{X}}$

then the extraction vector p is used as right member of the transposed modified nodal system [Y^(T)]α_(i)=p_(i). The solutions obtained are finally left and right multiplied to the noise source correlation matrix to obtain the resulting correlation product <X_(i)X_(j)*>=α_(i) ^(t)<NN*^(t)>α_(j)*^(t).

-   -   Given the δ{circumflex over (V)}_(q,k) the output noise voltage         corresponding to probe q at tone frequency k. Consider p_(q,k)         the extraction vector of δ{circumflex over (V)}_(q,k) from the         noise solution vector δ{circumflex over (V)}

δ{circumflex over (V)} _(q,k)( ω)=p ^(t) _(q,k) δ{circumflex over (V)}=p _(q,k) ^(t) Y ⁻¹ [δÛ+δΩ ₀ .B]

-   -   where δΩ₀, δÛ and B are respectively the LO frequency jitter         (modulation), the noise source sideband fluctuations and the         frequency sensitivity vector of the circuit.

Defining

Y^(t)α_(q,k) @ p_(q,k)

δ @ <[δÛ+δΩ₀]δΩ₀*>

-   -   we see that the correlation product <δ{circumflex over         (V)}_(q,k)δΩ₀*> for any of the probe q and frequency tone k can         be computed by the formula

<δ{circumflex over (V)}_(q,k)δΩ₀*>=α_(q,k) ^(t)Γ

-   -   The method further comprises computing vector Γ by inspection,         from NOISECOR bloc, following the pattern below.     -   Given an M≧1 element NOISECOR bloc (FIG. 1), two types of         contributions are to be considered in vector Γ.     -   Contribution type 1: <δÊ_(i,k) _(i) δΩ₀*>, <δÊ_(i,-k) _(i)         δΩ₀*>, i=1, . . . , M

$\left. \Gamma\leftarrow{\begin{matrix} 1 \\ \vdots \\ r_{i,{k_{i}\ldots}} \\ \vdots \\ r_{i,{{- k_{i}}\ldots}} \\ \vdots \end{matrix}\begin{bmatrix} \vdots \\ \vdots \\ {< {\delta \; {\hat{E}}_{i,k_{i}}\delta \; \Omega_{0}^{*}} >} \\ \vdots \\ {< {\delta \; {\hat{E}}_{i,{- k_{i}}}\delta \; \Omega_{0}^{*}} >} \\ \vdots \end{bmatrix}} \right.$

-   -   r_(i,k) _(i) and r_(i,-k) _(i) are the locations of the ith LO         source current of the NOISECOR bloc in the noise solution         vector, at frequency tones k_(i) and −k_(i) respectively

Contribution type 2:

$\left. \Gamma\leftarrow{< {\delta \; \Omega_{0}\delta \; \Omega_{0}^{*}} > {\times \begin{bmatrix} \; \\ B \\ \; \end{bmatrix}}} \right.$

Noise Format

NOISECOR format is used to model noise of an oscillator. It is the most accurate oscillator noise model. To process this model, the method comprises computing the circuit frequency sensitivity vector B=j[{circumflex over (Q)}+{dot over (Y)}(ω){circumflex over (V)}]. There are as many frequency sensitivity vectors as the number of fundamental frequencies in the analysis (i.e. 1 to 3). The various sensitivity vectors are directly delivered by the harmonic balance (HB) kernel along with the large signal solution vector, as is the case for normal oscillator analysis. The frequency tone of the RF sources associated to the NOISECOR bloc will then indicate the fundamental frequency to be considered. As stated above, it is mandatory that all RF sources associated with a NOISECOR bloc deliver the same frequency tone, besides this tone can only be the fundamental or a harmonic of a fundamental frequency. The only choice for noise format is therefore (h₁,0,0), (0,h₂,0) or (0,0,h₃). Also there may not be two different NOISECOR blocs on the same fundamental frequency, because each of them would define a different period jitter on a single time basis. Note that the corresponding fundamental frequency harmonic rank h_(c) (c=1,2,3) will be used in noise source data processing below.

An M≧1 element NOISECOR bloc defines a correlation matrix containing the following terms.

$\begin{matrix} {{< {\delta \; \Omega_{0}\delta \; \Omega_{0}^{*}} >}} \\ {{{< {\delta \; {\hat{E}}_{i,k_{i}}\delta \; \Omega_{0}^{*}} >},{< {\delta \; {\hat{E}}_{i,{- k_{i}}}\delta \; \Omega_{0}^{*}} >},{i = 1},\ldots \mspace{11mu},M}} \\ {{{< {\delta \; {\hat{E}}_{i,k_{i}}\delta \; {\hat{E}}_{j,k_{j}}^{*}} >},{< {\delta \; {\hat{E}}_{i,k_{i}}\delta \; {\hat{E}}_{j,{- k_{j}}}^{*}} >},{< {\delta \; {\hat{E}}_{i,{- k_{i}}}\delta \; {\hat{E}}_{j,k_{j}}^{*}} >},}} \\ {{{< {\delta \; {\hat{E}}_{i,{- k_{i}}}\delta \; {\hat{E}}_{j,{- k_{j}}}^{*}} >},i,{j = 1},\ldots \mspace{11mu},M}} \end{matrix}$

Note that the various tones k_(i) and k_(j) in the above are identical: k_(i)=k_(j)=h, ∀i,j.

The invention applies to either a set of RF voltage sources or a set of RF current sources. It will be appreciated by those skilled in the art that each noise source bloc contributes in the calculation of every correlation term selection following an adjoint network inspection strategy.

Given <δaδb*^(t)>=p_(a) ^(t)Y⁻¹<δUδU*^(t)>(Y⁻¹)*^(t)p_(b)*=α_(a) ^(t)<δUδU*^(t)>α_(b)* the correlation term to be computed, the NOISECOR bloc will directly contribute in the right hand vector β_(b)=<δUδU*^(t)>α_(b)* Recalling that p_(a) and p_(b) are extraction vectors of variables δa, the method comprises obtaining vectors α_(a) and α_(b) by solving the adjoint nodal admittance systems Y^(t)α_(a)=p_(a) and Y^(t)α_(b)=p_(b).

The contributions of NOISECOR to β_(b)=<δUδU*^(t)>α_(b)* are depicted below for voltage and current source sets.

Voltage Sources

Defining r_(i,k) the row rank of the ith LO source current of the NOISECOR bloc, in the noise solution vector, at frequency tone k, we have the contribution vectors.

$\begin{matrix} \begin{matrix} {\begin{matrix} 1 \\ \vdots \\ r_{i,{k\mspace{11mu} \ldots}} \\ \vdots \end{matrix}\begin{bmatrix} \vdots \\ \vdots \\ {< {\delta \; {\hat{E}}_{i,k}\delta \; {\hat{E}}_{j,l}^{*}} > {\alpha_{b}^{*}\left\lbrack r_{j,l} \right\rbrack}} \\ \vdots \end{bmatrix}} \\ {i,{j = 1},\ldots \mspace{11mu},{M;k},{l = {\pm h}}} \end{matrix} & \begin{matrix} {\begin{matrix} 1 \\ \vdots \\ r_{i,{k\mspace{11mu} \ldots}} \\ \vdots \end{matrix}\begin{bmatrix} \vdots \\ \vdots \\ {\frac{1}{h_{c}} < {\delta \; {\hat{E}}_{i,k}\delta \; \Omega_{0}^{*}} > {B^{*_{t}}\alpha_{b}^{*}}} \\ \vdots \end{bmatrix}} \\ {{i = 1},\ldots \mspace{11mu},{m;{k = {\pm h}}}} \end{matrix} \\ \begin{matrix} {\frac{1}{h_{c}} < {\delta \; \Omega_{0}\delta \; {\hat{E}}_{i,k}} > {{\alpha_{b}^{*}\left\lbrack r_{i,k} \right\rbrack} \times \begin{bmatrix} \; \\ B \\ \; \end{bmatrix}}} \\ {{i = 1},\ldots \mspace{11mu},{m;{k = {\pm h}}}} \end{matrix} & {\frac{1}{h_{c}^{2}} < {\delta \; \Omega_{0}\delta \; \Omega_{0}^{*}} > {B^{*_{t}}\alpha_{b}^{*} \times \begin{bmatrix} \; \\ B \\ \; \end{bmatrix}}} \end{matrix}$

Current Sources

Defining n_(i1,k) and n_(i2,k) the incident nodes of the ith LO source of the NOISECOR bloc, in the noise solution vector, at frequency tone k, we have the contributions.

$\begin{matrix} \begin{matrix} {\begin{matrix} 1 \\ \vdots \\ n_{{i\; 1},{k\; \ldots}} \\ \vdots \\ n_{{i\; 2},{k\mspace{11mu} \ldots}} \\ \vdots \end{matrix}\begin{bmatrix} \vdots \\ \vdots \\ {+ {< {\delta \; {\hat{I}}_{i,k}\delta \; {\hat{I}}_{j,l}^{*}} > {\alpha_{b}^{*}\left\lbrack r_{j,l} \right\rbrack} >}} \\ \vdots \\ {- {< {\delta \; {\hat{I}}_{i,k}\delta \; {\hat{I}}_{j,l}^{*}} > {\alpha_{b}^{*}\left\lbrack r_{j,l} \right\rbrack} >}} \\ \vdots \end{bmatrix}} \\ {i,{j = 1},\ldots \mspace{11mu},{M;k},{l = {\pm h}}} \end{matrix} & \begin{matrix} {\begin{matrix} 1 \\ \vdots \\ n_{{i\; 1},{k\; \ldots}} \\ \vdots \\ n_{{i\; 2},{k\mspace{11mu} \ldots}} \\ \vdots \end{matrix}\begin{bmatrix} \vdots \\ \vdots \\ {{+ \frac{1}{h_{c}}} < {\delta \; {\hat{I}}_{i,k}\delta \; \Omega_{0}^{*}} > {B^{*_{t}}\alpha_{b}^{*}}} \\ \vdots \\ {{- \frac{1}{h_{c}}} < {\delta \; {\hat{I}}_{i,k}\delta \; \Omega_{0}^{*}} > {B^{*_{t}}\alpha_{b}^{*}}} \\ \vdots \end{bmatrix}} \\ {{i = 1},\ldots \mspace{11mu},{m;{k = {\pm h}}}} \end{matrix} \\ \begin{matrix} {\frac{1}{h_{c}} < {\delta \; \Omega_{0}\delta \; {\hat{E}}_{i,k}} > {\left( {{\alpha_{b}^{*}\left\lbrack n_{{i\; 1},k} \right\rbrack} - {\alpha_{b}^{*}\left\lbrack n_{{i\; 2},k} \right\rbrack}} \right) \times \begin{bmatrix} \; \\ B \\ \; \end{bmatrix}}} \\ {{i = 1},\ldots \mspace{11mu},{m;{k = {\pm h}}}} \end{matrix} & {\frac{1}{h_{c}^{2}} < {\delta \; \Omega_{0}\delta \; \Omega_{0}^{*}} > {B^{*_{t}}\alpha_{b}^{*} \times \begin{bmatrix} \; \\ B \\ \; \end{bmatrix}}} \end{matrix}$

The envelope phase noise analysis technique

The method relies upon the modified nodal equation of periodic or quasi-periodic steady state regimes in frequency and/or time domain.

Given an arbitrary circuit, the frequency domain equilibrium equation can be stated as

$\begin{matrix} \left\{ \begin{matrix} {{{{{Y(\omega)}{V(\omega)}} + {I(\omega)} + {j\; \omega \; {Q(\omega)}} + {U(\omega)}} = 0}} \\ {{\omega \in S \Subset i}} \end{matrix} \right. & (1) \end{matrix}$

where Y(ω), V(ω), I(ω), Q(ω), U(ω) stand respectively for modified nodal admittance matrix, node voltages and impedance element currents, nonlinear currents, charges, and independent voltage and current sources. We assume that x(t) the time domain waveform of any variable in the equation (1) can be expressed as:

$\begin{matrix} {{{x(t)} = {\sum\limits_{k}{{{\overset{\sim}{x}}_{k}(t)}^{j\; \omega_{k}t}}}}{{{\overset{\sim}{x}}_{k}(t)} = {{{{\hat{x}}_{k}(t)}^{j\; {P_{k}{(t)}}}} = {{{\hat{x}}_{k}(t)}^{j\; {\int_{0}^{t}{k^{t}\delta \; {\Omega {(\tau)}}\ {\tau}}}}}}}} & \left( {2\text{-}1} \right) \end{matrix}$

where {ω_(k)=k^(t)Ω, kεZ^(M)} define the carrier frequency spectrum and, Ω=[Ω₁, . . . , Ω_(L)] the fundamental carrier or oscillation frequency vector, {circumflex over (x)}_(k)(t) the band pass envelope (modulation) components of the signal. The latter can be expanded in Fourier series as

$\begin{matrix} {{{\hat{x}}_{k}(t)} = {\frac{1}{2\; \pi}{\int_{{- {Bw}}/2}^{{Bw}/2}{{{\hat{X}}_{k}\left( \overset{\_}{\omega} \right)}^{j\; \overset{\_}{\omega}t}\ {\overset{\_}{\omega}}}}}} & \left( {2\text{-}2} \right) \end{matrix}$

Note that in (2), a clear distinction is made between frequency modulation δω_(k)(t)=k^(t)δΩ(t) and complex amplitude (side-band) modulation {circumflex over (x)}_(k)(t)

Taking account of (2) into (1) yields the large signal envelope transient equation

$\begin{matrix} \left\{ \begin{matrix} \begin{matrix} {{{{Y\left( {\omega_{k} + {\delta \; {\omega_{k}(t)}}} \right)}{{\hat{\upsilon}}_{k}(t)}} + {{\hat{i}}_{k}(t)} + {\left( {\omega_{k} + {\delta \; {\omega_{k}(t)}}} \right){{\hat{q}}_{k}(t)}} +}} \\ {{{{\hat{u}}_{k}(t)} + {{\overset{.}{Y}\left( \omega_{k} \right)}\frac{}{t}{{\hat{\upsilon}}_{k}(t)}} + {\frac{}{t}{{\hat{q}}_{k}(t)}}} = 0} \end{matrix} \\ {{{\delta \; {\omega_{k}(t)}} = {k^{t}\delta \; {\Omega (t)}}}} \\ {{t \in {\mathbb{R}}}} \\ {{k \in {\mathbb{Z}}^{M}}} \end{matrix} \right. & (3) \end{matrix}$

where R represents an ensemble of real numbers and Z represents an ensemble of integers. Note that the basic time varying frequency term δΩ(t) can be imposed by an external driving (i.e. FM signal) or be internally generated by the circuit dynamics (i.e. free running oscillator phase noise perturbation).

Equation (3) applies to the calculation of the periodic and quasi-periodic steady state and noise response of any type of circuit (autonomous and non autonomous).

A further simplification of (3) for the case of noise analysis can be obtained as follows. Assume we have reached an hypothetical noiseless equilibrium of the circuit

$\begin{matrix} \left\{ \begin{matrix} {{{{\hat{v}}_{k}(t)} = {\hat{V}}_{k}},{{{\hat{q}}_{k}(t)} = {\hat{Q}}_{k}},{{{\hat{i}}_{k}(t)} = {\hat{I}}_{k}},{{{\hat{u}}_{k}(t)} = {\hat{U}}_{k}},{{\delta \; {\Omega (t)}} = 0}} \\ {{\forall{t \geq t_{s}}}} \end{matrix} \right. & (4) \end{matrix}$

so that we have the steady state Harmonic/spectral balance equation

$\begin{matrix} \left\{ \begin{matrix} {{{{{Y\left( \omega_{k} \right)}{\hat{V}}_{k}} + {\hat{I}}_{k} + {j\; \omega_{k}{\hat{Q}}_{k}} + {\hat{U}}_{k}} = 0}} \\ {{k \in {\mathbb{Z}}}} \end{matrix} \right. & (5) \end{matrix}$

Now let us consider the perturbation of this state from t>t_(S), changing the stimulus to

û _(k)(t)=Û _(k) +δû _(k)(t)

Ω(t)=Ω+δΩ(t)

|δû _(k)(t)|=|Û _(k)| and |δΩ(t)|=|Ω|  (6)

Considering that δû_(k)(t) and δΩ(t) are small and substituting in (3), we find the small signal envelope transient equation:

$\begin{matrix} {{{{{Y\left( \omega_{k} \right)}\delta \; {{\hat{\upsilon}}_{k}(t)}} + {j\; \delta \; {\omega_{k}(t)}{\overset{.}{Y}\left( \omega_{k} \right)}{\hat{V}}_{k\; 0}} + {{\overset{.}{Y}\left( \omega_{k} \right)}\frac{}{t}\delta \; {{\hat{\upsilon}}_{k}(t)}} + {\delta \; {{\hat{i}}_{k}(t)}} + {j\; \omega_{k}\delta \; {{\hat{q}}_{k}(t)}} + {j\; \delta \; {\omega_{k}(t)}{\hat{Q}}_{k\; 0}} + {\frac{}{t}\delta \; {{\hat{q}}_{k}(t)}} + {\delta \; {{\hat{u}}_{k}(t)}}} = 0}{\omega_{k} = {k^{t}\Omega}}{{\delta \; {\omega_{k}(t)}} = {k^{t}\delta \; {\Omega (t)}}}{k \in {\mathbb{Z}}^{M}}{t > t_{s}}} & (7) \end{matrix}$

Considering the Fourier transform of the various variables

${\delta \; {{\hat{u}}_{k}(t)}} = {\frac{1}{2\; \pi}{\int{\delta \; {{\hat{U}}_{k}\left( \overset{\_}{\omega} \right)}^{j\; \overset{\_}{\omega}t}{\; \overset{\_}{\omega}}}}}$ ${{\delta\Omega}(t)} = {\frac{1}{2\; \pi}{\int{\delta \; {\Omega \left( \overset{\_}{\omega} \right)}^{j\; \overset{\_}{\omega}t}{\; \overset{\_}{\omega}}}}}$ ${\delta \; {{\hat{v}}_{k}(t)}} = {\frac{1}{2\; \pi}{\int{\delta \; {{\hat{V}}_{k}\left( \overset{\_}{\omega} \right)}^{j\; \overset{\_}{\omega}t}{\; \overset{\_}{\omega}}}}}$ ${\delta \; {{\hat{i}}_{k}(t)}} = {\frac{1}{2\; \pi}{\int{\delta \; {{\hat{I}}_{k}\left( \overset{\_}{\omega} \right)}^{j\; \overset{\_}{\omega}t}{\; \overset{\_}{\omega}}}}}$ ${\delta \; {{\hat{q}}_{k}(t)}} = {\frac{1}{2\; \pi}{\int{\delta \; {{\hat{Q}}_{k}\left( \overset{\_}{\omega} \right)}^{j\; \overset{\_}{\omega}l}{\; \overset{\_}{\omega}}}}}$

and applying to (7) yields

[Y(ω_(k))+j ω{dot over (Y)}(ω_(k))]δ{circumflex over (V)} _(k)( ω)+δÎ _(k)( ω)+j[ω _(k) + ω]δ{circumflex over (Q)} _(k)( ω)+j[{circumflex over (Q)} _(k) +{dot over (Y)}(ω_(k)){circumflex over (V)} _(k) ]k ^(t)δΩ( ω)+δÛ _(k)( ω)=0

ωε{−Bw/2,Bw/2}

kεZ^(M)  (8)

Note that the differential terms of the nonlinear currents and charges (δÎ_(k)( ω) and δ{circumflex over (Q)}_(k)( ω)) are known from the noiseless equilibrium (5), so that (9) can be expanded from 1^(st) order Taylor series as below

$\begin{matrix} {{{{\left\lbrack {{Y\left( \omega_{k} \right)} + {j\; \overset{\_}{\omega}{\overset{.}{Y}\left( \omega_{k} \right)}}} \right\rbrack \delta \; {{\hat{V}}_{k}\left( \overset{\_}{\omega} \right)}} + {\sum\limits_{l}{\left\lbrack {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{l}} + {{j\left( {\omega_{k} + \overset{\_}{\omega}} \right)}\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{l}}}} \right\rbrack \delta {{\hat{V}}_{l}\left( \overset{\_}{\omega} \right)}}} + {{j\left\lbrack {{\hat{Q}}_{k} + {{\overset{.}{Y}\left( \omega_{k} \right)}{\hat{V}}_{k}}} \right\rbrack}k^{t}\delta \; {\Omega \left( \overset{\_}{\omega} \right)}} + {\delta \; {{\hat{U}}_{k}\left( \overset{\_}{\omega} \right)}}} = 0}{\overset{\_}{\omega} \in \left\{ {{{- {Bw}}/2},{{Bw}/2}} \right\}}{k \in {\mathbb{Z}}^{M}}} & (9) \end{matrix}$

Arranging (9) in the matrix form we obtain the final form of envelope frequency domain noise equilibrium equation below.

$\begin{matrix} {\begin{matrix} \; & \; & \; & k & \; & \; & p \end{matrix}{{\begin{matrix} \; \\ k \\ \; \\ p \\ \; \end{matrix}\begin{bmatrix} \; & \vdots & \; & \vdots & \; \\ \cdots & \begin{matrix} {{Y\left( {\omega_{k} + {j\; \overset{\_}{\omega}}} \right)} +} \\ {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{k}}{j\left( {\omega_{k} + \overset{\_}{\omega}} \right)}\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{k}}} \end{matrix} & \cdots & {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{k}}{j\left( {\omega_{k} + \overset{\_}{\omega}} \right)}\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{k}}} & \cdots \\ \; & \vdots & \; & \vdots & \; \\ \cdots & {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{k}}{j\left( {\omega_{k} + \overset{\_}{\omega}} \right)}\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{k}}} & \cdots & \begin{matrix} {{Y\left( {\omega_{k} + {j\; \overset{\_}{\omega}}} \right)} +} \\ {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{k}}{j\left( {\omega_{k} + \overset{\_}{\omega}} \right)}\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{k}}} \end{matrix} & \cdots \\ \; & \vdots & \; & \vdots & \; \end{bmatrix}}{\quad{{\begin{bmatrix} {\delta \; {{\hat{V}}_{- K}\left( \overset{\_}{\omega} \right)}} \\ \vdots \\ {\delta \; {{\hat{V}}_{0}\left( \overset{\_}{\omega} \right)}} \\ \vdots \\ {\delta \; {{\hat{V}}_{K}\left( \overset{\_}{\omega} \right)}} \end{bmatrix} + {\begin{bmatrix} {{- j}\; {K\left\lbrack {{\hat{Q}}_{- K} + {{\hat{Y}\left( \omega_{K} \right)}{\hat{V}}_{- K}}} \right\rbrack}} \\ \vdots \\ {0{j\left\lbrack {{\hat{Q}}_{0} + {{\overset{.}{Y}(0)}{\hat{V}}_{0}}} \right\rbrack}} \\ \vdots \\ {K\; {j\left\lbrack {{\hat{Q}}_{K} + {{\overset{.}{Y}\left( \omega_{K} \right)}{\hat{V}}_{K}}} \right\rbrack}} \end{bmatrix}\delta \; {\Omega \left( \overset{\_}{\omega} \right)}} + \begin{bmatrix} {\delta \; {{\hat{U}}_{- K}\left( \overset{\_}{\omega} \right)}} \\ \vdots \\ {\delta \; {{\hat{U}}_{0}\left( \overset{\_}{\omega} \right)}} \\ \vdots \\ {\delta \; {{\hat{U}}_{K}\left( \overset{\_}{\omega} \right)}} \end{bmatrix}} = {{{0{\hat{Y}\left( \overset{\_}{\omega} \right)}\delta \; {\hat{V}\left( \overset{\_}{\omega} \right)}} + {B\; \delta \; {\Omega \left( \overset{\_}{\omega} \right)}} + {\delta \; {\hat{U}\left( \overset{\_}{\omega} \right)}}} = {{0\delta \; {\hat{V}\left( \overset{\_}{\omega} \right)}} \in {{\mathbb{C}}^{{N \times 2K} + 1}\delta \; {\Omega \left( \overset{\_}{\omega} \right)}} \in {\mathbb{C}}^{L}}}}}}} & (10) \end{matrix}$

(10) is a system of N×(2K+1) equations in N×(2K+1)+L unknowns, which can be used for the noise solution of both forced and free running regimes.

Equation (10) contains two type of variables, the complex amplitude perturbation δ{circumflex over (V)}( ω) and the fundamental frequency perturbation (or oscillation frequency jitter) δΩ( ω).

Note that the vector B in the equation above defines what will be called herein the frequency sensitivity vector of the circuit. B may be termed as the sensitivity of the circuit modified nodal current with respect to the oscillation frequency. Ŷ( ω) defines the frequency domain time varying modified nodal admittance matrix of large signal noise analysis.

Forming and Solving Noise Equation

For a forced regime, oscillation frequency perturbation δΩ( ω) is known and equation (10) a square system of N×(2K+1) equations in N×(2K+1) unknowns. For a free running regime however, at least one oscillation frequency perturbation is unknown and we have to account of a circuit autonomy condition to obtain a square system of equations. One of which is found to be

[p _(r) −e ^(j2θ) ^(r) p _(-r)]^(t) δ{circumflex over (V)}( ω)=0  (11)

where p_(r) is the extraction vector of any circuit node presenting a non zero voltage amplitude component at the oscillation frequency, and θ_(r) is the corresponding voltage phase.

Note that p_(r) is a vector containing only an entry of one at the node position and oscillation frequency tone and p_(-r) is a vector containing only an entry of one at the node position and minus oscillation frequency tone.

Taking account of the above we may thus rewrite the noise equilibrium equation (10) as following

$\begin{matrix} {{{{Y\left( \overset{\_}{\omega} \right)}\delta \; {X\left( \overset{\_}{\omega} \right)}} = {{- \delta}\; {U\left( \overset{\_}{\omega} \right)}}}{{Non}\mspace{14mu} {autonoumous}\mspace{14mu} {circuit}\mspace{14mu} {case}}\text{}{\delta \; {{X\left( \overset{\_}{\omega} \right)}@\delta}\; {\hat{V}\left( \overset{\_}{\omega} \right)}}{{\delta \; {{U\left( \overset{\_}{\omega} \right)}@\delta}\; {\hat{U}\left( \overset{\_}{\omega} \right)}} + {\delta \; {\Omega \left( \overset{\_}{\omega} \right)}B}}{{Y\left( \overset{\_}{\omega} \right)}@{\hat{Y}\left( \overset{\_}{\omega} \right)}}{{Autonomous}\mspace{14mu} {circuit}\mspace{14mu} {case}}\text{}{\delta \; {{X\left( \overset{\_}{\omega} \right)}@\left\lbrack {{\delta \; {\hat{V}\left( \overset{\_}{\omega} \right)}},{\delta \; {\Omega \left( \overset{\_}{\omega} \right)}}} \right\rbrack^{t}}}{\delta \; {{U\left( \overset{\_}{\omega} \right)}@\left\lbrack {{\delta \; {\hat{U}\left( \overset{\_}{\omega} \right)}},0} \right\rbrack^{t}}}{{Y\left( \overset{\_}{\omega} \right)}@\begin{bmatrix} {\hat{Y}\left( \overset{\_}{\omega} \right)} & B \\ {{p_{r}^{t} - {\left( ^{j\; 2\; \theta_{r}} \right)p_{r}^{t}}}} & 0 \end{bmatrix}}} & (12) \end{matrix}$

The resolution of noise equation is rendered more complex than that of the noiseless equilibrium by the fact that the noise sources can only be characterized in terms of statistical average; one doesn't dispose of the noise source amplitudes and phases. So the only things we can compute out of the noise equation (12) are the statistical averages of the resulting circuit response.

For that we consider the statistical average of both sides in equation (12) to obtain

Y( ω)<δX( ω)δX( ω)*^(t) >Y( ω)*^(t) =<δU( ω)δU( ω)*^(t)>  (13)

the statistical average <δU( ω)δU( ω)*^(t)> also known as the frequency domain correlation matrix of the circuit noise sources (traditional thermal, shot noise, flicker noises and any otherwise defined source). <δX( ω)δX( ω)*^(t)> is the frequency domain correlation matrix of the resulting noise perturbation at the circuit nodes, as well as oscillation frequency in case of a free running regime. We will term this output noise correlation matrix. Note that only very few terms are desired in the output noise correlation matrix <δX( ω)δX( ω)*^(t)>, so to save computation time and memory, we don't solve (13) by brute force approach, but instead of computing directly the desired terms in the output correlation matrix by the so called adjoint matrix technique.

For that, given a and b two node voltages (or impedance currents) or a node voltage (or impedance current) and an oscillation frequency of interest, for which we would like to compute the fluctuations correlation term <δa δb*>.

For each of these:

we form the extraction vector p_(x) which is a vector containing only an entry of one at the desired node position (or impedance current position) or at the oscillation frequency position in solution vector δX( ω), depending whether x is a node voltage (or impedance current) or an oscillation frequency. we solve the adjoint noise equation system Y( ω)^(t)α_(x)=p_(x) and obtain the solution vector α_(x).

For each pair of adjoint noise system solution vector α_(a) and α_(b):

right multiply the noise source correlation matrix <δU( ω)δU( ω)*^(t)> by the conjugate of the vector α_(b) to obtain the vector β_(b)=<δU( ω)δU( ω)*^(t)>α_(b)*. (Do not perform a brute force matrix into vector multiplication.) construct instead β_(b) by inspection, observing the nodal and statistical connectivity of each noise source in the circuit, multiply vectors α_(a) and β_(b) to obtain the scalar <δa δb*>.

As a final summary the process of forming and solving the envelope noise equation is

-   -   Acquire the steady state periodic or quasi-periodic solution         from any of the following algorithms: harmonic balance, shooting         time or finite difference periodic or quasi-periodic steady         state equation (eq5); i.e. the node voltages and oscillation         frequency {{circumflex over (V)}_(k), k=−K, . . . , K}, Ω given         by (4).     -   Compute the jacobian of the steady state equilibrium equation in         frequency domain; i.e. the derivatives of nonlinear current and         charge sources

$\left\{ {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{l}},\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{l}},k,{l = {- K}},\ldots \mspace{11mu},K} \right\},$

as given by (9)

-   -   Form Ŷ( ω) the frequency domain modified nodal admittance matrix         of large signal noise analysis as described in (9-10).

For a free running oscillator the method further comprises:

computing the frequency sensitivity vector {B=jk[{circumflex over (Q)}_(k)+{dot over (Y)}(ω_(k)){circumflex over (V)}_(k), k=−K, . . . , K} for the circuit autonomy condition (11) the method further comprises for each two node voltages (or impedance currents) or for a node voltage (or impedance) and oscillation frequency, computing their fluctuations self and cross-correlation <δa δb*> using adjoint system technique as outlined above.

CONCLUSION

The present invention is an envelope noise simulation method distinguished by discretion of the key components of oscillator noise, i.e. amplitude and oscillation frequency perturbation (δ{circumflex over (V)}( ω), δΩ( ω)) and their correlation, whereby a simulator accurately computes oscillator phase noise and provides a very accurate macro-model for oscillator circuits, as well as for forced circuits.

The present invention is a process of forming and solving an envelope noise equation comprising the steps of

-   -   acquiring the steady state periodic or quasi-periodic solution         from any of the following algorithms: harmonic balance, shooting         time or finite difference periodic or quasi-periodic steady         state equation (eq5); i.e. the node voltages and oscillation         frequency {{circumflex over (V)}_(k), k=−K, . . . , K}, Ω given         by (4);

computing the jacobian of the steady state equilibrium equation in frequency domain; i.e. the derivatives of nonlinear current and charge sources

$\left\{ {\frac{\partial{\hat{I}}_{k}}{\partial{\hat{V}}_{l}},\frac{\partial{\hat{Q}}_{k}}{\partial{\hat{V}}_{l}},k,{l = {- K}},\ldots \mspace{11mu},K} \right\},$

as given by (9); and

-   -   forming Ŷ( ω) the frequency domain modified nodal admittance         matrix of large signal noise analysis as described in (9-10).

The present invention is a method for extracting amplitude and oscillation frequency jitter from envelope noise equation and output data for the model comprising the steps of

computing the frequency domain noise source correlation matrix of the circuit noise sources (traditional thermal, shot noise, flicker noises and any otherwise defined source;

-   -   right multiplying the noise source correlation matrix <δU( ω)δU(         ω)*^(t)> by the conjugate of the vector α_(b) to obtain the         vector β_(b)=<δU( ω)δU( ω)*^(t)>α_(b)*;     -   and     -   multiplying vectors α_(a) and β_(b) to obtain the scalar <δa         δb*> fluctuations correlation term.

The present invention is a method for processing model data to perform a noise analysis by using a sub-circuit noise macro model of an oscillator, mixer, or amplifier comprising computing and saving the circuit frequency sensitivity vector tangibly embodied on a computer readable medium and retrieving the circuit frequency sensitivity vector within a simulation of a larger circuit.

The method comprises the steps following:

-   -   computing a correlation of all complex amplitude perturbation         sources (FIG. 2),     -   computing a correlation of all frequency perturbation sources,     -   computing at least one cross correlation of frequency         perturbation and complex amplitude perturbation sources,     -   computing an adjoint network admittance solution (FIG. 3), and     -   computing a circuit frequency sensitivity vector (FIG. 4)         wherein a complex amplitude perturbation source (U) may be one         of a plurality of current sources (I) and a plurality of voltage         sources (E), further comprising computing and storing a         cross-correlation of frequency perturbation and each complex         amplitude perturbation source contribution to the correlation         vector comprising the step of multiplying the following         operands:     -   an inverse of the harmonic number,     -   the cross-correlation matrix of frequency perturbation and each         complex amplitude perturbation source,     -   a conjugate of the adjoint network admittance solution, and     -   the circuit frequency sensitivity vector (FIG. 5A contribution         type A).

In the present invention a complex amplitude perturbation source may be one of a plurality of current sources and a plurality of voltage sources, the invention further comprises computing and storing a cross-correlation of each complex amplitude perturbation source and frequency perturbation contribution to the correlation vector comprising the step of multiplying the following operands:

-   -   an inverse of the harmonic number,     -   the cross-correlation matrix of each complex amplitude         perturbation source and frequency perturbation,     -   a transposed conjugate of the circuit frequency sensitivity         vector, and     -   a conjugate of the adjoint network admittance solution (FIG. 5B         contribution type B).

The invention further comprises the step of computing and storing a frequency correlation contribution to the correlation vector comprising the steps of multiplying the following operands

-   -   an inverse of the harmonic number squared,     -   the correlation matrix of frequency perturbations,     -   a transposed conjugate of the circuit frequency sensitivity         vector,     -   a conjugate of the adjoint network admittance solution, and     -   the circuit frequency sensitivity vector (FIG. 5C contribution         type C).

The present invention further comprises computing and storing a correlation of each complex amplitude perturbation source contribution to the correlation vector comprising the step of multiplying the following operands:

-   -   the correlation matrix of each complex amplitude perturbation         source and     -   a conjugate of the adjoint network admittance solution (FIG. 5D         contribution type D). 

1. The present invention is a process of forming and solving an envelope noise equation comprising the steps of acquiring the steady state periodic or quasi-periodic solution from at least one of the following algorithms: harmonic balance, shooting time or finite difference periodic or quasi-periodic steady state equation; computing the jacobian of the steady state equilibrium equation in frequency domain; computing the derivatives of nonlinear current and charge sources; and forming the frequency domain modified nodal admittance matrix of large signal noise analysis.
 2. The present invention is a method for extracting amplitude and oscillation frequency jitter from envelope noise equation and output data for the model comprising the steps of computing the frequency domain noise source correlation matrix of the circuit noise sources; right multiplying the noise source correlation matrix by the conjugate of the adjoint network admittance solution vector; constructing the frequency sensitivity vector of the circuit modified nodal current with respect to the oscillation frequency by inspection, observing the nodal and statistical connectivity of each noise source in the circuit; and vector multiplying the adjoint network admittance solution vector and the frequency sensitivity vector of the circuit modified nodal current with respect to the oscillation frequency to obtain the scalar fluctuations correlation term.
 3. The method for inserting a sub-circuit noise macro model into system circuit simulation comprising the steps of inserting a symbol onto a schematic, setting the name value of a source list and setting the name value of a noise description file, wherein the source list is at least one name of an RF source which is a single tone stimulus in the system circuit, and wherein the noise description file is one of a full correlation matrix given as a function of noise offset frequency, a sideband correlation matrix given as a function of noise offset frequency, and a phase noise plot given as a function of noise offset frequency.
 4. The method for performing a nonlinear noise analysis of a sub-circuit comprising the steps of setting a plurality of probes in the phase noise output list the probes selected from the list following: an output of a quadrature voltage controlled oscillator, a divider output of a voltage-controlled oscillator and divider, a voltage-controlled oscillator output of a voltage-controlled oscillator and divider.
 5. The method of claim 4 wherein each output probe is attached with a single harmonic index.
 6. The method of claim 4 wherein the user interface has a button to trigger data generation.
 7. The method for generating a sub-circuit noise macro model of an oscillator, mixer, or amplifier comprising calculating amplitude correlation products of every source with itself and with each other source in the sub-circuit.
 8. The method of claim 7 wherein a source is one of a voltage source and a current source.
 9. The method of claim 8 further comprising calculating frequency/amplitude correlation products in one of two situations following the sub-circuit is a free running oscillator, and the sub-circuit is a non-autonomous circuit driven by an oscillator defined with full local oscillator noise information wherein a non-autonomous circuit comprises one of an amplifier, a mixer, and a divider.
 10. The method of computing a full local oscillator noise contribution comprising the steps of i. expressing each element of the correlation product via its extraction vector, ii. using the extraction vector as a right member of a transposed modified nodal system, and iii. left and right multiplying the solutions to the noise source correlation matrix to obtain the resulting correlation product.
 11. The method for using a sub-circuit noise macro model of an oscillator, mixer, or amplifier comprising computing and saving the circuit frequency sensitivity vector tangibly embodied on a computer readable medium and retrieving the circuit frequency sensitivity vector within a simulation of a larger circuit.
 12. The method comprising the steps following: computing a correlation of all complex amplitude perturbation sources (FIG. 2), computing a correlation of all frequency perturbation sources, computing at least one cross correlation of frequency perturbation and complex amplitude perturbation sources, computing an adjoint network admittance solution (FIG. 3), and computing a circuit frequency sensitivity vector (FIG. 4) wherein a complex amplitude perturbation source (U) may be one of a plurality of current sources (I) and a plurality of voltage sources (E), further comprising computing and storing a cross-correlation of frequency perturbation and each complex amplitude perturbation source contribution to the correlation vector comprising the step of multiplying the following operands: an inverse of the harmonic number, the cross-correlation matrix of frequency perturbation and each complex amplitude perturbation source, a conjugate of the adjoint network admittance solution, and the circuit frequency sensitivity vector (FIG. 5A contribution type A).
 13. The method of claim 12 wherein a complex amplitude perturbation source may be one of a plurality of current sources and a plurality of voltage sources, further comprising computing and storing a cross-correlation of each complex amplitude perturbation source and frequency perturbation contribution to the correlation vector comprising the step of multiplying the following operands: an inverse of the harmonic number, the cross-correlation matrix of each complex amplitude perturbation source and frequency perturbation, a transposed conjugate of the circuit frequency sensitivity vector, and a conjugate of the adjoint network admittance solution (FIG. 5B contribution type B).
 14. The method of claim 12 further comprising the step of computing and storing a frequency correlation contribution to the correlation vector comprising the steps of multiplying the following operands an inverse of the harmonic number squared, the correlation matrix of frequency perturbations, a transposed conjugate of the circuit frequency sensitivity vector, a conjugate of the adjoint network admittance solution, and the circuit frequency sensitivity vector (FIG. 5C contribution type C).
 15. The method of claim 12 wherein a complex amplitude perturbation source may be one of a plurality of current sources and a plurality of voltage sources, further comprising computing and storing a correlation of each complex amplitude perturbation source contribution to the correlation vector comprising the step of multiplying the following operands: the correlation matrix of each complex amplitude perturbation source and a conjugate of the adjoint network admittance solution (FIG. 5D contribution type D). 